package com.byxy.dao;

import java.io.Serializable;
import java.util.List;

public interface BaseDAO {

	
	/**
	 * 保存一个对象
	 * 
	 * @param o
	 * @return
	 */
	public Serializable save(Object o);

	/**
	 * 删除一个对象
	 * 
	 * @param o
	 */
	public void delete(Object o);

	/**
	 * 更新一个对象
	 * 
	 * @param o
	 */
	public void update(Object o);

	/**
	 * 保存或更新对象
	 * 
	 * @param o
	 */
	public void saveOrUpdate(Object o);
	
	public <T> List<T> getAll(Class<T> cla);

	/**
	 * 查询集合
	 * 
	 * @param hql
	 * @param param
	 * @return
	 */
	public <T> List<T> find(String hql, Object... param);

	
	
	/**
	 * 获得一个对象
	 * 
	 * @param c
	 *            对象类型
	 * @param id
	 * @return Object
	 */
	public <T> T load(Class<T> c, Serializable id);

	
	
	
	/**
	 * 获得一个对象
	 * 
	 * @param c
	 *            对象类型
	 * @param id
	 * @return Object
	 */
	public <T> T get(Class<T> c, Serializable id);
}
